package ide.ccf.ccproject.editors;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;

/**
 * 颜色管理器类
 *
 */
public class ColorManager 
{
	protected Map<RGB, Color> fColorTable = new HashMap<RGB, Color>(10);

	/**
	 * 释放
	 */
	public void dispose() 
	{
		Iterator<Color> e = fColorTable.values().iterator();
		
		while (e.hasNext())
			 ((Color) e.next()).dispose();
	}
	
	/**
	 * 获取颜色
	 * @param rgb
	 * @return
	 */
	public Color getColor(RGB rgb) 
	{
		Color color = (Color) fColorTable.get(rgb);
		
		if (color == null) 
		{
			color = new Color(Display.getCurrent(), rgb);
			fColorTable.put(rgb, color);
		}
		return color;
	}
}